草庐IT

Python scipy.interpolate插值

全部标签

python - 具有 NaN 值或掩码的大型数组的双变量结构化插值

我正在尝试定期插入网格windstress使用Scipy的RectBivariateSpline的数据类(class)。在某些网格点,输入数据包含无效数据条目,这些条目被设置为NaN值。首先,我使用了Scott'squestion的解决方案关于二维插值。使用我的数据,插值返回一个仅包含NaN的数组。我还尝试了一种不同的方法,假设我的数据是非结构化的并使用SmoothBivariateSpline类(class)。显然我有太多数据点无法使用非结构化插值,因为数据数组的形状是(719x2880)。为了说明我的问题,我创建了以下脚本:from__future__importdivisioni

python - 删除缺失值的插值时间序列图

我正在尝试绘制时间序列数据,但我遇到了一些问题。我正在使用这段代码:frommatplotlibimportpyplotaspltplt.figure('Fig')plt.plot(data.index,data.Colum,'g',linewidth=2.0,label='Data')我明白了:但我不想在缺失值之间进行插值!我怎样才能做到这一点? 最佳答案 因为你使用的是pandas,你可以这样做:importpandasaspdimportmatplotlib.pyplotaspltpd.np.random.seed(1234)

Python字符串插值实现

[EDIT00]:我已经多次编辑帖子,现在甚至编辑标题,请阅读下文。我刚刚了解了格式字符串方法及其与字典的用法,例如vars()、locals()和globals(),示例:name='Ismael'print'Mynameis{name}.'.format(**vars())但我想做的是:name='Ismael'print'Mynameis{name}.'#Similartoruby所以我想到了这个:defmprint(string='',dictionary=globals()):printstring.format(**dictionary)您可以在此处与代码进行交互:http

python - 值错误 : A value in x_new is below the interpolation range

这是我在执行时遇到的scikit-learn错误my_estimator=LassoLarsCV(fit_intercept=False,normalize=False,positive=True,max_n_alphas=1e5)请注意,如果我将max_n_alphas从1e5降低到1e4,我就不会再收到此错误。有人知道发生了什么事吗?调用时出现错误my_estimator.fit(x,y)我在40维度上有40k个数据点。完整的堆栈跟踪如下所示File"/usr/lib64/python2.7/site-packages/sklearn/linear_model/least_angl

python - 类似于 scipy.interpolate.griddata?

我想对给定的3D点云进行插值:我查看了scipy.interpolate.griddata结果正是我所需要的,但据我所知,我需要输入“griddata”,这意味着x=[[0,0,0],[1,1,1],[2,2,2]].但我给定的3D点云没有这种网格外观-x、y值的行为不像网格-不管怎样,每个x、y值只有一个z值。*那么对于我的非网格点云,是否有替代scipy.interpolate.griddata的方法?*编辑:“没有网格外观”意味着我的输入看起来像这样:x=[0,4,17]y=[-7,25,116]z=[50,112,47] 最佳答案

python - SciPy 中的二维插值问题,非矩形网格

我一直在尝试使用scipy.interpolate.bisplrep()和scipy.interpolate.interp2d()在我的(218x135)2D球形极坐标网格上查找数据的插值。我将我的网格节点的笛卡尔位置的二维数组X和Y传递给它们。我不断收到如下错误(对于线性插值。使用interp2d):“警告:不能添加更多的结,因为额外的结会重合和一个旧的。可能原因:重量太小或太大到一个不准确的数据点。(fp>s)kx,ky=1,1nx,ny=4,5m=29430fp=1390609718.902140s=0.000000"使用默认的平滑参数s等,我得到了双变量样条的类似结果。我的数据

python - 在没有 fillna 或 Interpolate 的情况下从数据框中删除 NaN 值

我有一个数据集:3672354198959921941999-01-118511999-03-23NaN4NaN1999-04-30NaNNaN11999-06-02NaN9NaN1999-08-082NaNNaN1999-08-12NaN3NaN1999-08-17NaNNaN101999-10-22NaN3NaN1999-12-04NaNNaN42000-03-042NaNNaN2000-09-299NaNNaN2000-09-309NaNNaN当我绘制它时,使用plt.plot(df,'-o')我得到这个:但我想要的是将每一列的数据点连接成一条线,如下所示:我知道matplotl

python - `ValueError: A value in x_new is above the interpolation range.` - 除了不提升值还有什么其他原因?

我在scipyinterp1d函数中收到此错误。通常,如果x不是单调递增,就会产生此错误。importscipy.interpolateasspidefrefine(coarsex,coarsey,step):finex=np.arange(min(coarsex),max(coarsex)+step,step)intfunc=spi.interp1d(coarsex,coarsey,axis=0)finey=intfunc(finex)returnfinex,fineyfornum,tfileinenumerate(files):tfile=tfile.dropna(how='any

python - 是否可以构建一个自动插值的 Pandas 系列?

是否有可能为任何给定的索引生成一个对其值进行插值的序列。我有一个我希望规定的预定义插值方案,我宁愿调用者不自己应用插值,以避免任何可能的错误。classInterpolatedSeries(pd.Series):pass#magic?s=pd.Series([1,3],index=[1,3])i=InterpolatedSeries(s,forward='nearest',backward='nearest',middle='linear')调用者将收到i作为结果,他们现在可以请求任何值,我相信他们获得的值符合规定的插值方案。插值肯定不是可预先计算的(因为我们不知道他们会提前请求哪些点

python - 使用 scipy.interpolate.splrep 函数

我正在尝试将三次样条拟合到一组给定的点。我的积分没有排序。我无法对这些点进行排序或重新排序,因为我需要该信息。但由于函数scipy.interpolate.splrep仅适用于非重复和单调递增的点,我定义了一个将x坐标映射到单调递增空间的函数。我的旧观点是:xpoints=[4913.0,4912.0,4914.0,4913.0,4913.0,4913.0,4914.0,4915.0,4918.0,4921.0,4925.0,4932.0,4938.0,4945.0,4950.0,4954.0,4955.0,4957.0,4956.0,4953.0,4949.0,4943.0,4933